#ifndef SERIALPORTDRIVER_H
#define SERIALPORTDRIVER_H

#include <QObject>
//#include <QTime>
/*
 *
 * @brief 串口驱动类
 *
 *
 */
class QSerialPort;
class QTimer;
class SerialPortDriver : public QObject
{
    Q_OBJECT
public:
    explicit SerialPortDriver(QObject *parent = nullptr);
    static SerialPortDriver *getObject();
    QStringList serialPortGetAveList();//获取串口列表
     bool  serialPortOpen();//默认串口com10，默认波特率57600
     bool  serialPortOpen(QString portName);//默认波特率57600，可传入串口名
     bool  serialPortOpen(QString portName,qint32 baudRate);//需要填入串口名和波特率
     void serialPortClose();
     bool setPortName(QString portName);
     bool setBaudRate(qint32 baudRate);
     bool setDataBits(int dataBits);
     bool setStopBits(int stopBits);
     bool serialPortIsOpen();
     bool serialPortWrite(const QByteArray &data,int pro);
signals:
     void serialPortReadData(const QByteArray &data);//接受到发来的数据的信号
protected slots:
     void serialPortReadyReadSlot();//接收数据的槽函数
     void sendTimerTimeoutSlot();//定时器结束槽函数
protected:
    static SerialPortDriver *obj;
    QSerialPort *serial;//定义一个serialport类的指针
    QTimer *sendTimer;//定时器对象指针
    QList<QByteArray> sendList;//QByteArray类比较大，所以执行效率在大型项目中并不高

};

#endif // SERIALPORTDRIVER_H
